package com.le.tester.book.concurrentchallenge.shareWithObject;

/**
 * createTime：2021/11/22 14:36
 * description：线程安全的可变整数
 */
public class SynchronizedInteger {


    //volatile变量不会被缓存在寄存器或者对其他处理器不可见的地方，因此读取volatile的返回值总是最新的值
    //读取的时候就会有可见性，有了synchronized，写入的时候，就是退出同步代码块了，写完之后才有可见性
    private volatile int value;

    //直接在get和set中加上同步的机制

    public synchronized int getValue() {
        return value;
    }

    public synchronized void setValue(int value) {
        this.value = value;
    }
}

